package com.wf.classRoomTest;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class DemoArrayListNames {
    public static void main(String[] args) {
        List<String> one = new ArrayList<>();
        one.add("迪丽热巴");
        one.add("宋远桥");
        one.add("苏星河");
        one.add("老子");
        one.add("庄子");
        one.add("孙子");
        one.add("洪七公");


        List<String> two = new ArrayList<>();
        two.add("古力娜扎");
        two.add("张无忌");
        two.add("张三丰");
        two.add("赵丽颖");
        two.add("张二狗");
        two.add("张天爱");
        two.add("张三");
        //   1. 第一个队伍只要名字为3个字的成员姓名；

        one = one.stream()
                .filter(n -> n.length() == 3)
                .collect(Collectors.toList());
//        2. 第一个队伍筛选之后只要前3个人；
        one = one.stream()
                .limit(3)
                .collect(Collectors.toList());
//        one.stream()
//        3. 第二个队伍只要姓张的成员姓名；
        two = two.stream()
                .filter(n -> n.startsWith("张"))
                .collect(Collectors.toList());
//        one.stream()
//        4. 第二个队伍筛选之后不要前2个人；

        two = two.stream()
                .skip(2)
                .collect(Collectors.toList());
//        one.stream()

//        5. 将两个队伍合并为一个队伍；
        List<String> people = Stream.concat(one.stream(), two.stream()).collect(Collectors.toList());


//        6. 根据姓名创建`Person`对象；

        people.stream()
                .map(Person::new)
                .forEach(System.out::println);
//        one.stream()

//        7. 打印整个队伍的Person对象信息。


    }


}

class Person {

    private String name;

    public Person(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }
}